原帖 | Jack | 2025-02-24 17:32 | 👍0 | 阅读约1
老师,这样写能避免溢出问题? pf_get_tick_count归零不就不准了吗?(图一)
以u16为例,starttick为65500,timeout为100,pf_get_tick_count从65535加1变为了0,再继续加到101才能大于timeout。这种情况等于多加了(65535-65500)个tick,不是吗?等于说是才过了65535-65500个tick就超时了。
答:
这里会有取模运算,所以结果也是对的。如果你怕编译器有差异,你可以自己做个取模运算(如图二)。
但是要求很严的项目肯定不是这么做的,简单的会维护一个64位计数,数值非常大。
还有一些开源库可以用:GorgonMeducer.perf_counter


相关笔记